home *** CD-ROM | disk | FTP | other *** search
/ A.C.E. 2 / ACE CD 2.iso / FILES / GAMES / 1-L / FUNS4572.DMS / in.adf / Opposites.AMOS / Opposites.amosSourceCode < prev    next >
Encoding:
AMOS Source Code  |  1990-10-25  |  15.6 KB  |  449 lines

  1. ' ************************************************************************** 
  2. ' *** OPPOSITES (Amiga version) - Programmed by Terry Mancey (June 1991) *** 
  3. ' ************************************************************************** 
  4. '
  5. Close Editor : Close Workbench : Key Speed 255,255
  6. '
  7. Flash Off : Curs Off : Hide On : Fade 1 : Wait 15 : Sload Start(5),Start(6)
  8. '
  9. Dim PS(96),LEVEL_INFO(4,6),WORD$(2,165),LILLY_PADS(4,3),LILLY_FLAGS(4,3)
  10. Global PS(),LILLY_PADS(),X,Y,ANSWER,WORD$(),LEVEL
  11. '
  12. '********** MAIN PROGRAM 
  13. Double Buffer : Autoback 0 : Flash Off : Curs Off : Fade 1 : Wait 15
  14. '
  15. Gosub INITIALIZE : Goto _SAME_LEVEL
  16. '
  17. _NEXT_LEVEL:
  18.    Gosub LEVEL_SEQUENCE
  19. '
  20. _SAME_LEVEL:
  21.    AO_TRIES=0 : FROG_XPOS=3 : FROG_YPOS=0
  22.    If LEVEL_INFO(0,LEVEL)=6 Then _MIN_SCUBA_FROG=128 Else _MIN_SCUBA_FROG=142
  23.    SCUBA_FROG=_MIN_SCUBA_FROG
  24.    AOQ_RIGHT=0 : AOQ_RIGHT_REQ=LEVEL_INFO(3,LEVEL)
  25.    '
  26.    '********** SETUP LILLY-PADS (QUESTIONS) 
  27.    '*** CLEAR MATRIX
  28.    For LPX=0 To 3
  29.       For LPY=0 To 2
  30.          LILLY_PADS(LPX,LPY)=-1
  31.       Next LPY
  32.    Next LPX
  33.    '*** SETUP QUESTIONS 
  34.    For I=1 To LEVEL_INFO(0,LEVEL)
  35.       Repeat : X=Rnd(3) : Y=Rnd(2) : Until LILLY_PADS(X,Y)=-1 and LILLY_FLAGS(X,Y)=1
  36.       _ANSWER[X,Y]
  37.    Next I
  38.    '
  39.    AO_QUESTIONS=LEVEL_INFO(0,LEVEL) : MAO_QUESTIONS=AO_QUESTIONS
  40.    AO_SCUBA_FROGS=LEVEL_INFO(1,LEVEL) : AO_RUNGS=LEVEL_INFO(2,LEVEL)
  41.    '
  42.    Load Iff "oppscr.iff",0 : Double Buffer : Autoback 0 : Flash Off : Curs Off 
  43.    '
  44.    For LPY=0 To 2
  45.       Get Block LPY+1,100,114+(LPY*21),220,12
  46.    Next LPY
  47. '
  48. STATUS=1 : Goto _MAIN
  49. '
  50. _RESET_GAME:
  51.    Load Iff "oppscr.iff",0 : Double Buffer : Autoback 0 : Flash Off : Curs Off 
  52.    Gosub _ASK_QUESTION : Gosub _SHOW_ANSWERS : Bob 1,142+FROG_XPOS*44,114+FROG_YPOS*20,106
  53.    Screen Copy Logic To Physic : Autoback 2 : Bob 5,20,SCUBA_FROG,113
  54.    If AO_SCUBA_FROGS=2
  55.       Bob 6,29,142+14,113
  56.    End If 
  57.    If AO_SCUBA_FROGS=3
  58.       Bob 6,29,142+14,113 : Bob 7,39,142+14+14,113
  59.    End If 
  60.    Autoback 0 : Fade 1,$0,$FFC,$888,$444,$B0,$2C2,$F,$EE,$B00,$F88,$840,$B60,$FF0,$FFF,$0,$D82 : Wait 15
  61. '  
  62. _MAIN:
  63.    If STATUS>0
  64.       Dec STATUS : Gosub _ASK_QUESTION : Gosub _SHOW_ANSWERS : Bob 1,142+FROG_XPOS*44,114+FROG_YPOS*20,106
  65.       Screen Copy Logic To Physic : Autoback 2 : Bob 5,20,_MIN_SCUBA_FROG,113
  66.       If AO_SCUBA_FROGS=2
  67.          Bob 6,29,142+14,113
  68.       End If 
  69.       If AO_SCUBA_FROGS=3
  70.          Bob 6,29,142+14,113 : Bob 7,39,142+14+14,113
  71.       End If 
  72.       Autoback 0 : Fade 1,$0,$FFC,$888,$444,$B0,$2C2,$F,$EE,$B00,$F88,$840,$B60,$FF0,$FFF,$0,$D82 : Wait 15
  73.    Else 
  74.       Clear Key : Repeat : K$=Inkey$ : SC=Scancode : Until SC<>0
  75.       '
  76.       If FROG_XPOS>0 and SC=79
  77.          Anim 1,FROG_L$ : Move X 1,"(3,-15,2)(3,-7,2)" : Move Y 1,"(1,0,1)"
  78.           Extension_1_022E 1,4,0,0 : Anim On 1 : Move On 1 : Bob 1,142+FROG_XPOS*44,114+FROG_YPOS*20,101
  79.          Wait 15 : Dec FROG_XPOS : Bob 1,142+FROG_XPOS*44,114+FROG_YPOS*20,101
  80.       End If 
  81.       If FROG_YPOS>0 and SC=76
  82.          Anim 1,FROG_U$ : Move X 1,"(1,0,1)" : Move Y 1,"(3,-5,4)"
  83.           Extension_1_022E 1,4,0,0 : Anim On 1 : Move On 1 : Bob 1,142+FROG_XPOS*44,114+FROG_YPOS*20,102
  84.          Wait 15 : Dec FROG_YPOS : Bob 1,142+FROG_XPOS*44,114+FROG_YPOS*20,102
  85.       End If 
  86.       If FROG_XPOS<3 and SC=78
  87.          Anim 1,FROG_R$ : Move X 1,"(3,15,2)(3,7,2)" : Move Y 1,"(1,0,1)"
  88.           Extension_1_022E 1,4,0,0 : Anim On 1 : Move On 1 : Bob 1,142+FROG_XPOS*44,114+FROG_YPOS*20,94
  89.          Wait 15 : Inc FROG_XPOS : Bob 1,142+FROG_XPOS*44,114+FROG_YPOS*20,94
  90.       End If 
  91.       If FROG_YPOS<2 and SC=77
  92.          Anim 1,FROG_D$ : Move X 1,"(1,0,1)" : Move Y 1,"(3,5,4)"
  93.           Extension_1_022E 1,4,0,0 : Anim On 1 : Move On 1 : Bob 1,142+FROG_XPOS*44,114+FROG_YPOS*20,106
  94.          Wait 15 : Inc FROG_YPOS : Bob 1,142+FROG_XPOS*44,114+FROG_YPOS*20,106
  95.       End If 
  96.       '
  97.       If SC=68 and LILLY_PADS(FROG_XPOS,FROG_YPOS)<>-1
  98.          If LILLY_PADS(FROG_XPOS,FROG_YPOS)=ANSWER
  99.             '*** RIGHT 
  100.             Inc AOQ_RIGHT : AO_TRIES=0 : PTEXT[8,185,"That's right!",1]
  101.             '
  102.             If SCUBA_FROG>142-(4*14)
  103.                 Extension_1_022E 1,1,0,0
  104.                Autoback 2 : SCUBA_FRAME=110
  105.                For F=0 To 2
  106.                   Bob 5,19,SCUBA_FROG,SCUBA_FRAME
  107.                   Add SCUBA_FROG,-4 : Add SCUBA_FRAME,1,110 To 111
  108.                   Bob Clear : Bob Draw : Screen Swap : Wait 8
  109.                Next F
  110.                Add SCUBA_FROG,-2 : Bob 5,19,SCUBA_FROG,SCUBA_FRAME
  111.                Bob Clear : Bob Draw : Screen Swap : Wait 8 : Autoback 0
  112.             End If 
  113.             Wait 50
  114.             '
  115.             '*** FROG DIVE 
  116.             If SCUBA_FROG=142-(4*14)
  117.                 Extension_1_022E 1,0,0,0
  118.                If AO_SCUBA_FROGS=1
  119.                   PTEXT[8,185,"Well done!",1]
  120.                End If 
  121.                Gosub FROG_DIVE : Wait 40 : FLAG=True
  122.             End If 
  123.             '
  124.             If FLAG
  125.                FLAG=False
  126.                If AO_SCUBA_FROGS=0
  127.                   If AOQ_RIGHT<AOQ_RIGHT_REQ
  128.                      Fade 1 : Wait 15 : Goto _SAME_LEVEL
  129.                   Else 
  130.                      Goto _NEXT_LEVEL
  131.                   End If 
  132.                End If 
  133.             End If 
  134.             '
  135.             '*** GET NEW ANSWER
  136.             Put Block FROG_YPOS+1 : _ANSWER[FROG_XPOS,FROG_YPOS] : Repeat : ANSWER=LILLY_PADS(Rnd(3),Rnd(2)) : Until ANSWER<>-1
  137.             '
  138.             For LPX=0 To 3 : LPY=FROG_YPOS : Gosub DISPLAY_WORD : Next LPX : Gosub _ASK_QUESTION
  139.             Screen Copy Logic,100,114+(FROG_YPOS*21),320,125+(FROG_YPOS*21) To Physic,100,114+(FROG_YPOS*21)
  140.             Gosub _GO_HOME
  141.          Else 
  142.             '*** WRONG 
  143.             Inc AO_TRIES
  144.             If AO_TRIES>2
  145.                PTEXT[8,185,"That's wrong, the answer is "+Right$(WORD$(0,ANSWER),Len(WORD$(0,ANSWER))-1),1]
  146.             Else 
  147.                PTEXT[8,185,"That's wrong, try again",1]
  148.             End If 
  149.              Extension_1_022E 1,2,0,0 : Wait 50
  150.             '
  151.             If AO_TRIES>2
  152.                If SCUBA_FROG<_MIN_SCUBA_FROG
  153.                   Autoback 2 : SCUBA_FRAME=110
  154.                   For F=0 To 2
  155.                      Bob 5,19,SCUBA_FROG,SCUBA_FRAME
  156.                      Add SCUBA_FROG,4 : Add SCUBA_FRAME,1,110 To 111
  157.                      Bob Clear : Bob Draw : Screen Swap : Wait 8
  158.                   Next F
  159.                   Add SCUBA_FROG,2 : Bob 5,19,SCUBA_FROG,SCUBA_FRAME : Bob Clear : Bob Draw 
  160.                   Screen Swap : Wait 8 : Autoback 0
  161.                End If 
  162.                If SCUBA_FROG=_MIN_SCUBA_FROG
  163.                   Autoback 2
  164.                   Bob 5,20,_MIN_SCUBA_FROG,113 : Bob Clear : Bob Draw : Screen Swap : Wait 8
  165.                   Autoback 0
  166.                End If 
  167.                '
  168.                '*** GET NEW ANSWER
  169.                Put Block FROG_YPOS+1 : _ANSWER[FROG_XPOS,FROG_YPOS]
  170.                '
  171.                Repeat 
  172.                   ANSWER=LILLY_PADS(Rnd(3),Rnd(2))
  173.                Until ANSWER<>-1
  174.                '
  175.                For LPX=0 To 3
  176.                   LPY=FROG_YPOS : Gosub DISPLAY_WORD
  177.                Next LPX
  178.             End If 
  179.             Gosub _ASK_QUESTION : Screen Copy Logic,100,114+(FROG_YPOS*21),320,115+10+(FROG_YPOS*21) To Physic,100,114+(FROG_YPOS*21)
  180.          End If 
  181.       End If 
  182.       '
  183.       If SC=89
  184.           Extension_1_022E 1,3,0,0 : Goto _NEXT_LEVEL
  185.       End If 
  186.       '
  187.       If SC=69
  188.           Extension_1_022E 1,3,0,0
  189.          _QUIT_BIT : Goto _RESET_GAME
  190.       End If 
  191.    End If 
  192. Goto _MAIN
  193. '
  194. '********** SEND FROG HOME 
  195. _GO_HOME:
  196.    Repeat 
  197.       If FROG_YPOS>0
  198.          Anim 1,FROG_U$ : Move X 1,"(1,0,1)" : Move Y 1,"(3,-5,4)"
  199.           Extension_1_022E 1,4,0,0 : Anim On 1 : Move On 1 : Bob 1,142+FROG_XPOS*44,114+FROG_YPOS*20,102
  200.          Wait 15 : Dec FROG_YPOS : Bob 1,142+FROG_XPOS*44,114+FROG_YPOS*20,102
  201.       End If 
  202.       Wait 5
  203.       If FROG_XPOS<3
  204.          Anim 1,FROG_R$ : Move X 1,"(3,15,2)(3,7,2)" : Move Y 1,"(1,0,1)"
  205.           Extension_1_022E 1,4,0,0 : Anim On 1 : Move On 1 : Bob 1,142+FROG_XPOS*44,114+FROG_YPOS*20,94
  206.          Wait 15 : Inc FROG_XPOS : Bob 1,142+FROG_XPOS*44,114+FROG_YPOS*20,94
  207.       End If 
  208.       Wait 5
  209.    Until FROG_XPOS=3 and FROG_YPOS=0
  210.    Wait 20 : Bob 1,142+FROG_XPOS*44,114+FROG_YPOS*20,106 : Wait 10
  211. Return 
  212. '
  213. '********** FROG SEQUENCES 
  214. FROG_DIVE:
  215.    '*** HOP OFF LADDER  
  216.    Autoback 2 : Bob Update On 
  217.    For I=0 To 42 Step 4
  218.       Bob 5,20,142-(4*14)-I,112 : Wait Vbl 
  219.    Next I
  220.    Bob 8,7,41,150 : Wait Vbl 
  221.    For I=42 To 20 Step -6
  222.       Bob 5,20,142-(4*14)-I,112 : Wait Vbl 
  223.    Next I
  224.    Bob 5,20,142-(4*14)-20,113 : Wait Vbl : Wait 95
  225.    '*** WALK TO EDGE
  226.    For I=0 To 1 : Bob 5,X Bob(5)+6,66,114 : Wait 4 : Bob 5,X Bob(5)+6,66,115 : Wait 4 : Bob 5,X Bob(5)+6,66,116 : Wait 4 : Bob 5,X Bob(5)+6,66,115 : Wait 4 : Next I
  227.    Bob 5,X Bob(5)+6,66,114 : Wait 4 : Bob 5,X Bob(5)+6,66,115 : Wait 4 : Bob Off 8 : Wait 140
  228.    '
  229.    '*** DIVE OFF BOARD (0=Dive, 1=Fall) 
  230.    FROG_DIVE=Rnd(5)
  231.    If FROG_DIVE<>2
  232.       Anim 5,"(118,25)(119,15)(118,5)(120,5)(121,5)(122,5)(155,5)" : Move X 5,"(45,0,1)(5,9,2)(5,6,1)" : Move Y 5,"(40,0,1)(5,-8,3)(5,0,1)(5,4,1)(1,4,5)" : Anim On 5 : Move On 5 : Wait 65 : Anim Off 5 : Move Off 5
  233.       Move Y 5,"(1,4,200)" : Move On 5 : Repeat : Until Y Bob(5)>135 : Anim Off 5 : Move Off 5
  234.       Anim 5,"(155,3)(156,3)(157,3)(158,3)(1,3)" : Move X 5,"(1,0,1)" : Move Y 5,"(1,0,1)" : Anim On 5 : Move On 5
  235.       Bob 15,X Bob(5),Y Bob(5),168 : Anim 15,"(168,3)(169,3)(170,3)(171,3)(1,3)" : Anim On 15 : Wait 15 : Anim Off 15 : Anim Off 5 : Move Off 5
  236.    End If 
  237.    If FROG_DIVE=2
  238.       Bob 5,X Bob(5)+6,66,114 : Wait 4 : Bob 5,X Bob(5)+6,66,115 : Wait 4 : Bob 5,X Bob(5)+6,66,116 : Wait 4 : Bob 5,X Bob(5)+6,66,115 : Wait 50 : Bob 5,X Bob(5),66,117 : Wait 75 : Bob 5,X Bob(5)+2,66,123 : Wait 4
  239.       Move Y 5,"(1,4,200)" : Move On 5 : Repeat : Until Y Bob(5)>135 : Anim Off 5 : Move Off 5
  240.       Anim 5,"(162,3)(163,3)(164,3)(1,3)" : Move X 5,"(1,0,1)" : Move Y 5,"(1,0,1)" : Anim On 5 : Move On 5
  241.       Bob 15,X Bob(5),Y Bob(5),168 : Anim 15,"(168,3)(169,3)(170,3)(171,3)(1,3)" : Anim On 15 : Wait 15 : Anim Off 15 : Anim Off 5 : Move Off 5
  242.    End If 
  243.    '
  244.    '*** NEXT SCUBA FROG 
  245.    Dec AO_SCUBA_FROGS
  246.    If AO_SCUBA_FROGS=0
  247.       Bob Off 5 : Bob Off 6 : Bob Off 7
  248.    End If 
  249.    If AO_SCUBA_FROGS=1
  250.       Bob 5,20,_MIN_SCUBA_FROG,113 : Bob Off 6 : Bob Off 7
  251.    End If 
  252.    If AO_SCUBA_FROGS=2
  253.       Bob 5,20,_MIN_SCUBA_FROG,113 : Bob 6,29,142+14,113 : Bob Off 7
  254.    End If 
  255.    If AO_SCUBA_FROGS=3
  256.       Bob 5,20,_MIN_SCUBA_FROG,113 : Bob 6,29,142+14,113 : Bob 7,39,142+14+14,113
  257.    End If 
  258.    Bob Off 8 : Bob Clear : Bob Draw : Screen Swap : Wait Vbl : Autoback 0
  259.    SCUBA_FROG=_MIN_SCUBA_FROG
  260. Return 
  261. '
  262. '********** SUBROUTINES
  263. '*** ASK QUESTION  
  264. _ASK_QUESTION:
  265.    Cls Logic,8,185 To 311,196 : PTEXT[8,185,"Find the opposite of "+Right$(WORD$(1,ANSWER),Len(WORD$(1,ANSWER))-1),0]
  266.    Screen Copy Logic,8,185,311,196 To Physic,8,185
  267. Return 
  268. '
  269. '*** SHOW ANSWERS (ON LILLY-PADS)
  270. _SHOW_ANSWERS:
  271.    Ink Point(100,107) : Bar 100,107 To 120,166
  272.    For LPX=3 To 0 Step -1
  273.       For LPY=0 To 2
  274.          If LILLY_PADS(LPX,LPY)<>-1
  275.             Paste Bob 121-16+LPX*44,107+LPY*20,129 : Gosub DISPLAY_WORD
  276.          End If 
  277.       Next LPY
  278.    Next LPX
  279. Return 
  280. '
  281. '*** DISPLAY WORD
  282. DISPLAY_WORD:
  283.    If LILLY_PADS(LPX,LPY)<>-1
  284.       '*** CALC. LENGTH OF WQRD
  285.       L=0 : T$=Right$(WORD$(0,LILLY_PADS(LPX,LPY)),Len(WORD$(0,LILLY_PADS(LPX,LPY)))-1)
  286.       For I=1 To Len(T$)
  287.          Add L,PS(Asc(Mid$(T$,I,1))-31)
  288.       Next I
  289.       '*** DISPLAY WORD (CENTRED)
  290.       X=142+LPX*44-(L/2) : Y=115+LPY*21
  291.       For I=1 To Len(T$)
  292.          C=Asc(Mid$(T$,I,1))-31 : Paste Bob X,Y,C : Add X,PS(C)
  293.       Next I
  294.    End If 
  295. Return 
  296. '
  297. '********** LEVEL SEQUENCE 
  298. LEVEL_SEQUENCE:
  299.    Fade 1 : Wait 15 : Autoback 2 : Cls 0 : Bob Off : Anim Off : Move Off 
  300.    For I=0 To 5 : Paste Bob 8-16+I*44,111,129 : Next I
  301.    '
  302. SKIP_LEVEL:
  303.    Add LEVEL,1,0 To 5 : Cls 0,147,42 To 167,62 : Paste Bob 147,42,LEVEL+144 : Autoback 2 : Paste Bob 122,16,183
  304.    If LEVEL>0 Then Bob 1,30+(LEVEL-1)*44,120,94 Else Bob 1,250,67,132
  305.    Screen Copy Logic To Physic : If Colour(0)=0 Then Fade 1,$C,$FFC,$888,$444,$B0,$2C2,$F,$EE,$B00,$F88,$840,$B60,$FF0,$FFF,$0,$D82 : Wait 15 : Bob Update On 
  306.    '
  307.    '*** FROG ANIMATION
  308.    If LEVEL>0
  309.       '*** MOVE
  310.       Anim 1,FROG_R$ : Move X 1,"(3,15,2)(3,7,2)" : Move Y 1,"(1,0,1)"
  311.       Anim On 1 : Move On 1 : Wait 17 : Anim Off 1
  312.    Else 
  313.       '*** SWIM
  314.       Anim 1,"(132,5)(133,5)(134,5)(135,5)(136,5)(137,20)(138,75)(139,5)(140,5)(141,5)(142,5)(143,5)"
  315.       Move X 1,"(5,0,1)(5,11,1)(5,9,1)(5,3,1)(5,5,2)(5,-4,1)(5,-8,1)(5,-22,1)(5,-5,1)(5,-16,14)(5,-14,1)"
  316.       Move Y 1,"(5,0,2)(5,16,2)(5,3,1)(5,2,1)(5,11,1)(5,12,1)(5,15,1)(5,2,7)(5,-2,7)(5,-3,2)(5,-15,4)"
  317.       Anim On 1 : Move On 1 : Wait 140 : Anim Off 1 : Bob 1,30,135,94
  318.    End If 
  319.    '
  320.    Timer=0 : Clear Key : Repeat 
  321.       K$=Inkey$ : SC=Scancode
  322.       If SC=89 Then Goto SKIP_LEVEL
  323.    Until Timer>=75 or SC<>0
  324.    '
  325.    Fade 1 : Wait 15 : Autoback 0
  326. Return 
  327. '
  328. '********** INITIALIZE   
  329. INITIALIZE:
  330.    Channel 1 To Bob 1 : Channel 5 To Bob 5 : Channel 15 To Bob 15
  331.    '*** WORD LIST 
  332.    Open In 1,"OPP.DAT"
  333.       For I=0 To 154
  334.          Input #1,WORD$ : N$=Left$(WORD$,1) : P1=Instr(WORD$,"/",1)
  335.          WORD$(0,I)=Lower$(N$+Mid$(WORD$,4,P1-4)) : WORD$(1,I)=Lower$(N$+Mid$(WORD$,P1+1,Len(WORD$)-P1))
  336.          If Len(WORD$(0,I))>Len(WORD$(1,I)) : Swap WORD$(0,I),WORD$(1,I) : End If 
  337.       Next I
  338.    Close 1
  339.    Restore D_ANSWER_POSITIONS
  340.    For Y=0 To 2
  341.       For X=0 To 3
  342.          Read LILLY_FLAGS(X,Y)
  343.       Next X
  344.    Next Y
  345.    '*** PROP FONT 
  346.    Restore D_PROP_FONT
  347.    For I=1 To 91
  348.       Read PS(I)
  349.    Next I
  350.    '*** LEVEL INFO
  351.    Restore D_LEVEL_INFO
  352.    For I=0 To 5
  353.       Read LEVEL_INFO(0,I),LEVEL_INFO(1,I),LEVEL_INFO(2,I),LEVEL_INFO(3,I)
  354.    Next I
  355.    '*** FROG ANIM 
  356.    FROG_L$="(101,3)(100,3)(99,3)(101,3)"
  357.    FROG_U$="(102,3)(103,3)(104,3)(105,2)(102,1)"
  358.    FROG_R$="(94,3)(95,3)(96,3)(94,3)"
  359.    FROG_D$="(106,3)(107,2)(108,3)(109,3)(106,1)"
  360.    '*** VARIABLES   
  361.    LEVEL=0
  362. Return 
  363. '
  364. '********** PROCEDURES 
  365. Procedure PTEXT[X,Y,T$,M]
  366.    If M=1
  367.       Cls Logic,8,185 To 311,196
  368.    End If 
  369.    For I=1 To Len(T$)
  370.       C=Asc(Mid$(T$,I,1))-31
  371.       Paste Bob X,Y,C
  372.       Add X,PS(C)
  373.    Next I
  374.    If M=1
  375.       Screen Copy Logic,8,185,311,196 To Physic,8,185
  376.    End If 
  377. End Proc
  378. Procedure _ANSWER[X,Y]
  379.    Repeat 
  380.    _DONTWANT:
  381.       ANSWER=Rnd(154)
  382.       If LEVEL=0
  383.          If Left$(WORD$(0,ANSWER),1)<>"1"
  384.             Goto _DONTWANT
  385.          End If 
  386.       End If 
  387.       If LEVEL=1 or LEVEL=2
  388.          If Left$(WORD$(0,ANSWER),1)<>"2"
  389.             Goto _DONTWANT
  390.          End If 
  391.       End If 
  392.       If LEVEL=3 or LEVEL=4
  393.          If Left$(WORD$(0,ANSWER),1)<>"3"
  394.             Goto _DONTWANT
  395.          End If 
  396.       End If 
  397.       If LEVEL=5
  398.          If Left$(WORD$(0,ANSWER),1)<>"4"
  399.             Goto _DONTWANT
  400.          End If 
  401.       End If 
  402.       FLAG=False
  403.       For CX=0 To 3
  404.          For CY=0 To 2
  405.             If LILLY_PADS(CX,CY)=ANSWER
  406.                FLAG=True
  407.             End If 
  408.          Next CY
  409.       Next CX
  410.    Until FLAG=False
  411.    '
  412.    LILLY_PADS(X,Y)=ANSWER
  413. End Proc
  414. Procedure _QUIT_BIT
  415.    Priority Reverse Off 
  416.    For LOP=1 To 15 : Erase LOP : Next LOP
  417.    If Chip Free+Fast Free>250000
  418.       Run "Menu_A500.AMOS"
  419.    Else 
  420.       Run "No_Memory.AMOS"
  421.    End If 
  422. End Proc
  423. '
  424. '********** PROPORTIONAL FONT DATA 
  425. D_PROP_FONT:
  426.    Data 6,4,0,0,6,0,0,4,6,6,0
  427.    Data 0,7,10,6,8,8,8,8,8,8
  428.    Data 8,8,8,8,8,6,6,0,0,0
  429.    Data 8,0,8,8,8,8,8,8,8,8
  430.    Data 6,8,8,8,9,8,8,8,8,8
  431.    Data 8,8,8,8,9,8,8,8,0,0
  432.    Data 0,0,10,6,8,8,7,8,8,7
  433.    Data 8,8,6,6,8,6,9,8,8,8
  434.    Data 8,8,8,8,8,8,9,8,8,8
  435. '
  436. '********** LEVEL INFO 
  437. '*** Format: Amount of questions, Amount of scuba-frogs, Amount of rungs   
  438. '*           Amount of questions required to complete level (80%)
  439. D_LEVEL_INFO:
  440.    Data 4,1,4,4
  441.    Data 4,2,3,4
  442.    Data 4,2,3,4
  443.    Data 4,2,4,4
  444.    Data 6,2,4,5
  445.    Data 6,3,4,5
  446. D_ANSWER_POSITIONS:
  447.    Data 1,0,1,0
  448.    Data 0,1,0,1
  449.    Data 1,0,1,0